Expand description

This crate defines the core traits and types used by all Sovereign SDK rollups. It specifies the interfaces which allow the same “business logic” to run on different DA layers and be proven with different zkVMS, all while retaining compatibility with the same basic full node implementation.

Re-exports

Modules

  • Defines useful cryptographic primitives that are needed by all sovereign-sdk rollups.
  • Defines traits and types used by the rollup to verify claims about the DA layer.
  • A facade around all the types we need from the std, core, and alloc crates. This avoids elaborate import wrangling having to happen in every module.
  • Utilities for building an optimistic state machine
  • The rpc module defines types and traits for querying chain history via an RPC interface.
  • The services module contains traits for the long-lived services which the full node uses to run the state transition function and serve user requests.
  • This module is the core of the Sovereign SDK. It defines the traits and types that allow the SDK to run the “business logic” of any application generically.
  • Defines the traits that must be implemented by zkVMs. A zkVM like Risc0 consists of two components, a “guest” and a “host”. The guest is the zkVM program itself, and the host is the physical machine on which the zkVM is running. Both the guest and the host are required to implement the Zkvm trait, in addition to the specialized ZkvmGuest and ZkvmHost trait which is appropriate to that environment.

Structs

  • A cheaply cloneable and sliceable chunk of contiguous memory.
  • A unique reference to a contiguous slice of memory.

Traits

  • A marker trait for general addresses.
  • Read bytes from a buffer.
  • A trait for values that provide sequential write access to bytes.
  • An address used inside rollup